[INFO] cloning repository https://github.com/VEETS5/vitobar
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/VEETS5/vitobar" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FVEETS5%2Fvitobar", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FVEETS5%2Fvitobar'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ba8a8de5591e7d687ae8056f9b7797ffb163f232
[INFO] checking VEETS5/vitobar against 40527f3e444fde1deb361751bdef9b9e11d1b971+rustflags=--cfg crater_hack --force-warn invalid-c-variadic-arguments for pr-162478
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FVEETS5%2Fvitobar" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/VEETS5/vitobar
[INFO] finished tweaking git repo https://github.com/VEETS5/vitobar
[INFO] tweaked toml for git repo https://github.com/VEETS5/vitobar written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/VEETS5/vitobar on toolchain 40527f3e444fde1deb361751bdef9b9e11d1b971
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+40527f3e444fde1deb361751bdef9b9e11d1b971" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/VEETS5/vitobar already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+40527f3e444fde1deb361751bdef9b9e11d1b971" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] ac139d95e886c6363e18cefe0117442c54767ca4396e87d4d706f6a2f28c2832
[INFO] running `Command { std: "docker" "start" "ac139d95e886c6363e18cefe0117442c54767ca4396e87d4d706f6a2f28c2832", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ac139d95e886c6363e18cefe0117442c54767ca4396e87d4d706f6a2f28c2832", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ac139d95e886c6363e18cefe0117442c54767ca4396e87d4d706f6a2f28c2832" "/opt/rustwide/cargo-home/bin/cargo" "+40527f3e444fde1deb361751bdef9b9e11d1b971" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ac139d95e886c6363e18cefe0117442c54767ca4396e87d4d706f6a2f28c2832", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid --cfg crater_hack --force-warn invalid-c-variadic-arguments" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ac139d95e886c6363e18cefe0117442c54767ca4396e87d4d706f6a2f28c2832" "/opt/rustwide/cargo-home/bin/cargo" "+40527f3e444fde1deb361751bdef9b9e11d1b971" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]     Checking bitflags v2.11.0
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]     Checking linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling winnow v1.0.1
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling cc v1.2.58
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]     Checking downcast-rs v1.2.1
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking unicode-ident v1.0.24
[INFO] [stderr]    Compiling wayland-client v0.31.13
[INFO] [stderr]     Checking simd-adler32 v0.3.9
[INFO] [stderr]     Checking parking v2.2.1
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling quick-xml v0.39.2
[INFO] [stderr]    Compiling wayland-sys v0.31.10
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking syn v2.0.117
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]     Checking once_cell v1.21.4
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]     Checking adler2 v2.0.1
[INFO] [stderr]    Compiling endi v1.1.1
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]    Compiling wayland-backend v0.3.14
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]    Compiling toml_parser v1.1.1+spec-1.1.0
[INFO] [stderr]     Checking socket2 v0.6.3
[INFO] [stderr]    Compiling wayland-scanner v0.31.9
[INFO] [stderr]     Checking mio v1.2.0
[INFO] [stderr]     Checking memmap2 v0.8.0
[INFO] [stderr]    Compiling smithay-client-toolkit v0.19.2
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]     Checking itoa v1.0.18
[INFO] [stderr]     Checking arrayref v0.3.9
[INFO] [stderr]     Checking toml_write v0.1.2
[INFO] [stderr]     Checking futures-io v0.3.32
[INFO] [stderr]    Compiling toml_edit v0.25.9+spec-1.1.0
[INFO] [stderr]     Checking fastrand v2.3.0
[INFO] [stderr]     Checking cursor-icon v1.2.0
[INFO] [stderr]     Checking foldhash v0.1.5
[INFO] [stderr]     Checking allocator-api2 v0.2.21
[INFO] [stderr]     Checking xcursor v0.3.10
[INFO] [stderr]     Checking strict-num v0.1.1
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking anstream v1.0.0
[INFO] [stderr]     Checking futures-lite v2.6.1
[INFO] [stderr]     Checking tokio v1.50.0
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]     Checking async-broadcast v0.7.2
[INFO] [stderr]    Compiling proc-macro-crate v3.5.0
[INFO] [stderr]     Checking ordered-stream v0.2.0
[INFO] [stderr]     Checking memmap2 v0.9.10
[INFO] [stderr]     Checking ttf-parser v0.21.1
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]     Checking hex v0.4.3
[INFO] [stderr]     Checking iana-time-zone v0.1.65
[INFO] [stderr]     Checking jiff v0.2.23
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking uuid v1.23.0
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]     Checking env_filter v1.0.1
[INFO] [stderr]     Checking fontdue v0.9.3
[INFO] [stderr]     Checking sysinfo v0.30.13
[INFO] [stderr]     Checking polling v3.11.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling async-recursion v1.1.1
[INFO] [stderr]     Checking env_logger v0.11.10
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking xkeysym v0.2.1
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking wayland-protocols v0.32.11
[INFO] [stderr]     Checking calloop-wayland-source v0.3.0
[INFO] [stderr]     Checking wayland-cursor v0.31.13
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]    Compiling zvariant_utils v3.3.0
[INFO] [stderr]    Compiling enumflags2 v0.7.12
[INFO] [stderr]     Checking xkbcommon v0.7.0
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking niri-ipc v25.11.0
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]    Compiling zvariant_derive v5.10.0
[INFO] [stderr]    Compiling zvariant v5.10.0
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking zbus_names v4.3.1
[INFO] [stderr]    Compiling zbus_macros v5.14.0
[INFO] [stderr]     Checking wayland-protocols-wlr v0.3.11
[INFO] [stderr]     Checking zbus v5.14.0
[INFO] [stderr]     Checking vitobar v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: field `qh` is never read
[INFO] [stdout]    --> src/greeter/main.rs:167:5
[INFO] [stdout]     |
[INFO] [stdout] 159 | struct GreeterApp {
[INFO] [stdout]     |        ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 167 |     qh:             QueueHandle<Self>,
[INFO] [stdout]     |     ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `glyph_exists` is never used
[INFO] [stdout]   --> src/greeter/../render.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn glyph_exists(ch: char) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `measure` is never used
[INFO] [stdout]   --> src/greeter/../render.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn measure(text: &str, size: f32) -> f32 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear_rgba`, `clip_text`, `draw_icon`, and `truncate_text` are never used
[INFO] [stdout]    --> src/greeter/../render.rs:70:12
[INFO] [stdout]     |
[INFO] [stdout]  55 | impl Renderer {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn clear_rgba(&mut self, hex: &str, alpha: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn clip_text(&self, text: &str, max_width: f32, size: f32) -> String {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn draw_icon(&mut self, x: u32, y: u32, phys_size: u32, rgba: &[u8]) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub fn truncate_text(&self, text: &str, max_width: f32, size: f32) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/greeter/../config.rs:9:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct Colors {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout]  9 |     pub base02: String, // border inactive
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub base06: String, // light fg
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 14 |     pub base07: String, // bright fg
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 15 |     pub base08: String, // red
[INFO] [stdout] 16 |     pub base09: String, // orange
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 17 |     pub base0a: String, // yellow
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 18 |     pub base0b: String, // green
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 19 |     pub base0c: String, // cyan
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 20 |     pub base0d: String, // blue (accent)
[INFO] [stdout] 21 |     pub base0e: String, // purple
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 22 |     pub base0f: String, // brown
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Colors` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `swatches` is never used
[INFO] [stdout]   --> src/greeter/../config.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl Colors {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 26 |     /// The 16 base colors in order, as hex strings (for palette previews).
[INFO] [stdout] 27 |     pub fn swatches(&self) -> Vec<String> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/greeter/../config.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct Config {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 39 |     pub colors:         Colors,
[INFO] [stdout] 40 |     pub bar_height:     Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 41 |     pub taskbar_height: Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 42 |     pub font_size:      Option<f32>,
[INFO] [stdout] 43 |     pub font_path:      Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 44 |     pub selected_theme: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 45 |     pub bar_opacity:    Option<f32>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 46 |     pub nightlight_mode:  Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 47 |     pub nightlight_temp:  Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub nightlight_start: Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub nightlight_end:   Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 50 |     pub latitude:         Option<f32>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 51 |     pub longitude:        Option<f32>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 52 |     pub idle_display_off: Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 53 |     pub idle_suspend:     Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 54 |     pub idle_hibernate:   Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 55 |     pub idle_poweroff:    Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 56 |     pub widget_media_enabled:     Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 57 |     pub widget_equalizer_enabled: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 58 |     pub widget_weather_enabled:   Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 59 |     pub widget_netspeed_enabled:  Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 60 |     pub widget_left_pad:  Option<f32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 61 |     pub weather_location: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 62 |     pub weather_units:    Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Config` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/greeter/../config.rs:66:12
[INFO] [stdout]     |
[INFO] [stdout]  65 | impl Config {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout]  66 |     pub fn bar_h(&self)     -> u32 { self.bar_height.unwrap_or(21) }
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout]  67 |     pub fn taskbar_h(&self) -> u32 { self.taskbar_height.unwrap_or(21) }
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout]  68 |     pub fn opacity(&self)   -> f32 { self.bar_opacity.unwrap_or(1.0).clamp(0.0, 1.0) }
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout]  69 |
[INFO] [stdout]  70 |     pub fn nightlight_mode(&self)  -> &str { self.nightlight_mode.as_deref().unwrap_or("scheduled") }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout]  71 |     pub fn nightlight_temp(&self)  -> u32  { self.nightlight_temp.unwrap_or(4000).clamp(1000, 6500) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout]  72 |     pub fn nightlight_start(&self) -> u32  { self.nightlight_start.unwrap_or(20).min(23) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]  73 |     pub fn nightlight_end(&self)   -> u32  { self.nightlight_end.unwrap_or(6).min(23) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn nightlight_command(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub fn idle_display_off(&self) -> u32 { self.idle_display_off.unwrap_or(0) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]  92 |     pub fn idle_suspend(&self)     -> u32 { self.idle_suspend.unwrap_or(0) }
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout]  93 |     pub fn idle_hibernate(&self)   -> u32 { self.idle_hibernate.unwrap_or(0) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout]  94 |     pub fn idle_poweroff(&self)    -> u32 { self.idle_poweroff.unwrap_or(0) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout]  95 |
[INFO] [stdout]  96 |     pub fn widget_media_enabled(&self)     -> bool { self.widget_media_enabled.unwrap_or(false) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  97 |     pub fn widget_equalizer_enabled(&self) -> bool { self.widget_equalizer_enabled.unwrap_or(false) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  98 |     pub fn widget_weather_enabled(&self)   -> bool { self.widget_weather_enabled.unwrap_or(false) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  99 |     pub fn widget_netspeed_enabled(&self)  -> bool { self.widget_netspeed_enabled.unwrap_or(false) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 100 |     pub fn widget_left_pad(&self)  -> f32  { self.widget_left_pad.unwrap_or(12.0).clamp(0.0, 400.0) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 101 |     pub fn weather_location(&self) -> &str { self.weather_location.as_deref().unwrap_or("") }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 102 |     pub fn weather_units(&self)    -> &str { self.weather_units.as_deref().unwrap_or("C") }
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn idle_command(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stylix_colors` is never used
[INFO] [stdout]    --> src/greeter/../config.rs:222:8
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub fn stylix_colors() -> Option<Colors> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_setting` is never used
[INFO] [stdout]    --> src/greeter/../config.rs:391:8
[INFO] [stdout]     |
[INFO] [stdout] 391 | pub fn save_setting(key: &str, value: toml::Value) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_atomic` is never used
[INFO] [stdout]    --> src/greeter/../config.rs:417:4
[INFO] [stdout]     |
[INFO] [stdout] 417 | fn write_atomic(path: &std::path::Path, contents: &str) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_setting` is never used
[INFO] [stdout]    --> src/greeter/../config.rs:428:8
[INFO] [stdout]     |
[INFO] [stdout] 428 | pub fn remove_setting(key: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `compositor`, `layer_shell`, and `qh` are never read
[INFO] [stdout]   --> src/launcher/main.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | struct LauncherApp {
[INFO] [stdout]    |        ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 52 |     compositor:     CompositorState,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 53 |     layer_shell:    LayerShell,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     qh:             QueueHandle<Self>,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `glyph_exists` is never used
[INFO] [stdout]   --> src/launcher/../render.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn glyph_exists(ch: char) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `measure` is never used
[INFO] [stdout]   --> src/launcher/../render.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn measure(text: &str, size: f32) -> f32 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear`, `clear_rgba`, and `truncate_text` are never used
[INFO] [stdout]    --> src/launcher/../render.rs:62:12
[INFO] [stdout]     |
[INFO] [stdout]  55 | impl Renderer {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  62 |     pub fn clear(&mut self, hex: &str) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn clear_rgba(&mut self, hex: &str, alpha: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub fn truncate_text(&self, text: &str, max_width: f32, size: f32) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/launcher/../config.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct Colors {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 11 |     pub base04: String, // subtle text
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 12 |     pub base05: String, // foreground
[INFO] [stdout] 13 |     pub base06: String, // light fg
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 14 |     pub base07: String, // bright fg
[INFO] [stdout] 15 |     pub base08: String, // red
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 16 |     pub base09: String, // orange
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 17 |     pub base0a: String, // yellow
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 18 |     pub base0b: String, // green
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 19 |     pub base0c: String, // cyan
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 20 |     pub base0d: String, // blue (accent)
[INFO] [stdout] 21 |     pub base0e: String, // purple
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 22 |     pub base0f: String, // brown
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Colors` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `swatches` is never used
[INFO] [stdout]   --> src/launcher/../config.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl Colors {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 26 |     /// The 16 base colors in order, as hex strings (for palette previews).
[INFO] [stdout] 27 |     pub fn swatches(&self) -> Vec<String> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/launcher/../config.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct Config {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 39 |     pub colors:         Colors,
[INFO] [stdout] 40 |     pub bar_height:     Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 41 |     pub taskbar_height: Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 42 |     pub font_size:      Option<f32>,
[INFO] [stdout] 43 |     pub font_path:      Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 44 |     pub selected_theme: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 45 |     pub bar_opacity:    Option<f32>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 46 |     pub nightlight_mode:  Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 47 |     pub nightlight_temp:  Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub nightlight_start: Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub nightlight_end:   Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 50 |     pub latitude:         Option<f32>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 51 |     pub longitude:        Option<f32>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 52 |     pub idle_display_off: Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 53 |     pub idle_suspend:     Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 54 |     pub idle_hibernate:   Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 55 |     pub idle_poweroff:    Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 56 |     pub widget_media_enabled:     Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 57 |     pub widget_equalizer_enabled: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 58 |     pub widget_weather_enabled:   Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 59 |     pub widget_netspeed_enabled:  Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 60 |     pub widget_left_pad:  Option<f32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 61 |     pub weather_location: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 62 |     pub weather_units:    Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Config` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/launcher/../config.rs:66:12
[INFO] [stdout]     |
[INFO] [stdout]  65 | impl Config {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout]  66 |     pub fn bar_h(&self)     -> u32 { self.bar_height.unwrap_or(21) }
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout]  67 |     pub fn taskbar_h(&self) -> u32 { self.taskbar_height.unwrap_or(21) }
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout]  68 |     pub fn opacity(&self)   -> f32 { self.bar_opacity.unwrap_or(1.0).clamp(0.0, 1.0) }
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout]  69 |
[INFO] [stdout]  70 |     pub fn nightlight_mode(&self)  -> &str { self.nightlight_mode.as_deref().unwrap_or("scheduled") }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout]  71 |     pub fn nightlight_temp(&self)  -> u32  { self.nightlight_temp.unwrap_or(4000).clamp(1000, 6500) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout]  72 |     pub fn nightlight_start(&self) -> u32  { self.nightlight_start.unwrap_or(20).min(23) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]  73 |     pub fn nightlight_end(&self)   -> u32  { self.nightlight_end.unwrap_or(6).min(23) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn nightlight_command(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub fn idle_display_off(&self) -> u32 { self.idle_display_off.unwrap_or(0) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]  92 |     pub fn idle_suspend(&self)     -> u32 { self.idle_suspend.unwrap_or(0) }
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout]  93 |     pub fn idle_hibernate(&self)   -> u32 { self.idle_hibernate.unwrap_or(0) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout]  94 |     pub fn idle_poweroff(&self)    -> u32 { self.idle_poweroff.unwrap_or(0) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout]  95 |
[INFO] [stdout]  96 |     pub fn widget_media_enabled(&self)     -> bool { self.widget_media_enabled.unwrap_or(false) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  97 |     pub fn widget_equalizer_enabled(&self) -> bool { self.widget_equalizer_enabled.unwrap_or(false) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  98 |     pub fn widget_weather_enabled(&self)   -> bool { self.widget_weather_enabled.unwrap_or(false) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  99 |     pub fn widget_netspeed_enabled(&self)  -> bool { self.widget_netspeed_enabled.unwrap_or(false) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 100 |     pub fn widget_left_pad(&self)  -> f32  { self.widget_left_pad.unwrap_or(12.0).clamp(0.0, 400.0) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 101 |     pub fn weather_location(&self) -> &str { self.weather_location.as_deref().unwrap_or("") }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 102 |     pub fn weather_units(&self)    -> &str { self.weather_units.as_deref().unwrap_or("C") }
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn idle_command(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stylix_colors` is never used
[INFO] [stdout]    --> src/launcher/../config.rs:222:8
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub fn stylix_colors() -> Option<Colors> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_setting` is never used
[INFO] [stdout]    --> src/launcher/../config.rs:391:8
[INFO] [stdout]     |
[INFO] [stdout] 391 | pub fn save_setting(key: &str, value: toml::Value) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_atomic` is never used
[INFO] [stdout]    --> src/launcher/../config.rs:417:4
[INFO] [stdout]     |
[INFO] [stdout] 417 | fn write_atomic(path: &std::path::Path, contents: &str) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_setting` is never used
[INFO] [stdout]    --> src/launcher/../config.rs:428:8
[INFO] [stdout]     |
[INFO] [stdout] 428 | pub fn remove_setting(key: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `icon` is never read
[INFO] [stdout]  --> src/launcher/desktop.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct DesktopEntry {
[INFO] [stdout]   |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 7 |     pub icon:   Option<String>,
[INFO] [stdout]   |         ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `DesktopEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `qh` is never read
[INFO] [stdout]    --> src/greeter/main.rs:167:5
[INFO] [stdout]     |
[INFO] [stdout] 159 | struct GreeterApp {
[INFO] [stdout]     |        ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 167 |     qh:             QueueHandle<Self>,
[INFO] [stdout]     |     ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `glyph_exists` is never used
[INFO] [stdout]   --> src/greeter/../render.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn glyph_exists(ch: char) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `measure` is never used
[INFO] [stdout]   --> src/greeter/../render.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn measure(text: &str, size: f32) -> f32 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear_rgba`, `clip_text`, `draw_icon`, and `truncate_text` are never used
[INFO] [stdout]    --> src/greeter/../render.rs:70:12
[INFO] [stdout]     |
[INFO] [stdout]  55 | impl Renderer {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn clear_rgba(&mut self, hex: &str, alpha: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn clip_text(&self, text: &str, max_width: f32, size: f32) -> String {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn draw_icon(&mut self, x: u32, y: u32, phys_size: u32, rgba: &[u8]) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub fn truncate_text(&self, text: &str, max_width: f32, size: f32) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/greeter/../config.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct Config {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 39 |     pub colors:         Colors,
[INFO] [stdout] 40 |     pub bar_height:     Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 41 |     pub taskbar_height: Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 42 |     pub font_size:      Option<f32>,
[INFO] [stdout] 43 |     pub font_path:      Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 44 |     pub selected_theme: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 45 |     pub bar_opacity:    Option<f32>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub idle_display_off: Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 53 |     pub idle_suspend:     Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 54 |     pub idle_hibernate:   Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 55 |     pub idle_poweroff:    Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 56 |     pub widget_media_enabled:     Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 57 |     pub widget_equalizer_enabled: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 58 |     pub widget_weather_enabled:   Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 59 |     pub widget_netspeed_enabled:  Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 60 |     pub widget_left_pad:  Option<f32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 61 |     pub weather_location: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 62 |     pub weather_units:    Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Config` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/greeter/../config.rs:66:12
[INFO] [stdout]     |
[INFO] [stdout]  65 | impl Config {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout]  66 |     pub fn bar_h(&self)     -> u32 { self.bar_height.unwrap_or(21) }
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout]  67 |     pub fn taskbar_h(&self) -> u32 { self.taskbar_height.unwrap_or(21) }
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout]  68 |     pub fn opacity(&self)   -> f32 { self.bar_opacity.unwrap_or(1.0).clamp(0.0, 1.0) }
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub fn idle_display_off(&self) -> u32 { self.idle_display_off.unwrap_or(0) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]  92 |     pub fn idle_suspend(&self)     -> u32 { self.idle_suspend.unwrap_or(0) }
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout]  93 |     pub fn idle_hibernate(&self)   -> u32 { self.idle_hibernate.unwrap_or(0) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout]  94 |     pub fn idle_poweroff(&self)    -> u32 { self.idle_poweroff.unwrap_or(0) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout]  95 |
[INFO] [stdout]  96 |     pub fn widget_media_enabled(&self)     -> bool { self.widget_media_enabled.unwrap_or(false) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  97 |     pub fn widget_equalizer_enabled(&self) -> bool { self.widget_equalizer_enabled.unwrap_or(false) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  98 |     pub fn widget_weather_enabled(&self)   -> bool { self.widget_weather_enabled.unwrap_or(false) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  99 |     pub fn widget_netspeed_enabled(&self)  -> bool { self.widget_netspeed_enabled.unwrap_or(false) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 100 |     pub fn widget_left_pad(&self)  -> f32  { self.widget_left_pad.unwrap_or(12.0).clamp(0.0, 400.0) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 101 |     pub fn weather_location(&self) -> &str { self.weather_location.as_deref().unwrap_or("") }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 102 |     pub fn weather_units(&self)    -> &str { self.weather_units.as_deref().unwrap_or("C") }
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn idle_command(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stylix_colors` is never used
[INFO] [stdout]    --> src/greeter/../config.rs:222:8
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub fn stylix_colors() -> Option<Colors> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_setting` is never used
[INFO] [stdout]    --> src/greeter/../config.rs:391:8
[INFO] [stdout]     |
[INFO] [stdout] 391 | pub fn save_setting(key: &str, value: toml::Value) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_atomic` is never used
[INFO] [stdout]    --> src/greeter/../config.rs:417:4
[INFO] [stdout]     |
[INFO] [stdout] 417 | fn write_atomic(path: &std::path::Path, contents: &str) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_setting` is never used
[INFO] [stdout]    --> src/greeter/../config.rs:428:8
[INFO] [stdout]     |
[INFO] [stdout] 428 | pub fn remove_setting(key: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `compositor`, `layer_shell`, and `qh` are never read
[INFO] [stdout]   --> src/launcher/main.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | struct LauncherApp {
[INFO] [stdout]    |        ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 52 |     compositor:     CompositorState,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 53 |     layer_shell:    LayerShell,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     qh:             QueueHandle<Self>,
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `glyph_exists` is never used
[INFO] [stdout]   --> src/launcher/../render.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn glyph_exists(ch: char) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `measure` is never used
[INFO] [stdout]   --> src/launcher/../render.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn measure(text: &str, size: f32) -> f32 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear`, `clear_rgba`, and `truncate_text` are never used
[INFO] [stdout]    --> src/launcher/../render.rs:62:12
[INFO] [stdout]     |
[INFO] [stdout]  55 | impl Renderer {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  62 |     pub fn clear(&mut self, hex: &str) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn clear_rgba(&mut self, hex: &str, alpha: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub fn truncate_text(&self, text: &str, max_width: f32, size: f32) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/launcher/../config.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct Config {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 39 |     pub colors:         Colors,
[INFO] [stdout] 40 |     pub bar_height:     Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 41 |     pub taskbar_height: Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 42 |     pub font_size:      Option<f32>,
[INFO] [stdout] 43 |     pub font_path:      Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 44 |     pub selected_theme: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 45 |     pub bar_opacity:    Option<f32>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub idle_display_off: Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 53 |     pub idle_suspend:     Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 54 |     pub idle_hibernate:   Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 55 |     pub idle_poweroff:    Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 56 |     pub widget_media_enabled:     Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 57 |     pub widget_equalizer_enabled: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 58 |     pub widget_weather_enabled:   Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 59 |     pub widget_netspeed_enabled:  Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 60 |     pub widget_left_pad:  Option<f32>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 61 |     pub weather_location: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 62 |     pub weather_units:    Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Config` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/launcher/../config.rs:66:12
[INFO] [stdout]     |
[INFO] [stdout]  65 | impl Config {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout]  66 |     pub fn bar_h(&self)     -> u32 { self.bar_height.unwrap_or(21) }
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout]  67 |     pub fn taskbar_h(&self) -> u32 { self.taskbar_height.unwrap_or(21) }
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout]  68 |     pub fn opacity(&self)   -> f32 { self.bar_opacity.unwrap_or(1.0).clamp(0.0, 1.0) }
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub fn idle_display_off(&self) -> u32 { self.idle_display_off.unwrap_or(0) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]  92 |     pub fn idle_suspend(&self)     -> u32 { self.idle_suspend.unwrap_or(0) }
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout]  93 |     pub fn idle_hibernate(&self)   -> u32 { self.idle_hibernate.unwrap_or(0) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout]  94 |     pub fn idle_poweroff(&self)    -> u32 { self.idle_poweroff.unwrap_or(0) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout]  95 |
[INFO] [stdout]  96 |     pub fn widget_media_enabled(&self)     -> bool { self.widget_media_enabled.unwrap_or(false) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  97 |     pub fn widget_equalizer_enabled(&self) -> bool { self.widget_equalizer_enabled.unwrap_or(false) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  98 |     pub fn widget_weather_enabled(&self)   -> bool { self.widget_weather_enabled.unwrap_or(false) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  99 |     pub fn widget_netspeed_enabled(&self)  -> bool { self.widget_netspeed_enabled.unwrap_or(false) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 100 |     pub fn widget_left_pad(&self)  -> f32  { self.widget_left_pad.unwrap_or(12.0).clamp(0.0, 400.0) }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 101 |     pub fn weather_location(&self) -> &str { self.weather_location.as_deref().unwrap_or("") }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 102 |     pub fn weather_units(&self)    -> &str { self.weather_units.as_deref().unwrap_or("C") }
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn idle_command(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stylix_colors` is never used
[INFO] [stdout]    --> src/launcher/../config.rs:222:8
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub fn stylix_colors() -> Option<Colors> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_setting` is never used
[INFO] [stdout]    --> src/launcher/../config.rs:391:8
[INFO] [stdout]     |
[INFO] [stdout] 391 | pub fn save_setting(key: &str, value: toml::Value) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_atomic` is never used
[INFO] [stdout]    --> src/launcher/../config.rs:417:4
[INFO] [stdout]     |
[INFO] [stdout] 417 | fn write_atomic(path: &std::path::Path, contents: &str) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_setting` is never used
[INFO] [stdout]    --> src/launcher/../config.rs:428:8
[INFO] [stdout]     |
[INFO] [stdout] 428 | pub fn remove_setting(key: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `icon` is never read
[INFO] [stdout]  --> src/launcher/desktop.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct DesktopEntry {
[INFO] [stdout]   |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 7 |     pub icon:   Option<String>,
[INFO] [stdout]   |         ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `DesktopEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `compositor`, `layer_shell`, and `qh` are never read
[INFO] [stdout]    --> src/settings/main.rs:96:5
[INFO] [stdout]     |
[INFO] [stdout]  93 | struct SettingsApp {
[INFO] [stdout]     |        ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout]  96 |     compositor:      CompositorState,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]  97 |     layer_shell:     LayerShell,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     qh:              QueueHandle<Self>,
[INFO] [stdout]     |     ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear_rgba`, `draw_icon`, and `truncate_text` are never used
[INFO] [stdout]    --> src/settings/../render.rs:70:12
[INFO] [stdout]     |
[INFO] [stdout]  55 | impl Renderer {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn clear_rgba(&mut self, hex: &str, alpha: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn draw_icon(&mut self, x: u32, y: u32, phys_size: u32, rgba: &[u8]) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub fn truncate_text(&self, text: &str, max_width: f32, size: f32) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `font_path` is never read
[INFO] [stdout]   --> src/settings/../config.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct Config {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub font_path:      Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Config` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `nightlight_command` is never used
[INFO] [stdout]   --> src/settings/../config.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | impl Config {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn nightlight_command(&self) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `CACHE` is never used
[INFO] [stdout]  --> src/settings/../icons.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | static CACHE: OnceLock<Mutex<HashMap<String, Option<Vec<u8>>>>> = OnceLock::new();
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cache` is never used
[INFO] [stdout]   --> src/settings/../icons.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn cache() -> &'static Mutex<HashMap<String, Option<Vec<u8>>>> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load` is never used
[INFO] [stdout]   --> src/settings/../icons.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn load(app_id: &str, size: u32) -> Option<Vec<u8>> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `data_dirs` is never used
[INFO] [stdout]   --> src/settings/../icons.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn data_dirs() -> Vec<PathBuf> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `desktop_icon_name` is never used
[INFO] [stdout]   --> src/settings/../icons.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn desktop_icon_name(app_id: &str) -> Option<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_png_path` is never used
[INFO] [stdout]   --> src/settings/../icons.rs:77:4
[INFO] [stdout]    |
[INFO] [stdout] 77 | fn find_png_path(icon_name: &str) -> Option<PathBuf> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lookup` is never used
[INFO] [stdout]    --> src/settings/../icons.rs:116:4
[INFO] [stdout]     |
[INFO] [stdout] 116 | fn lookup(app_id: &str, size: u32) -> Option<Vec<u8>> {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode_and_scale` is never used
[INFO] [stdout]    --> src/settings/../icons.rs:122:4
[INFO] [stdout]     |
[INFO] [stdout] 122 | fn decode_and_scale(path: &std::path::Path, target: u32) -> Option<Vec<u8>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ti`
[INFO] [stdout]    --> src/main.rs:569:10
[INFO] [stdout]     |
[INFO] [stdout] 569 |     for (ti, tray_item) in tray_items.iter().enumerate() {
[INFO] [stdout]     |          ^^ help: if this is intentional, prefix it with an underscore: `_ti`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `wx` is never read
[INFO] [stdout]    --> src/main.rs:439:21
[INFO] [stdout]     |
[INFO] [stdout] 439 |                       wx -= wgap;
[INFO] [stdout]     |                       ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 506 | /             lwidget!("", &txt, &config.colors.base0c,
[INFO] [stdout] 507 | |                 BarAction::Spawn { cmd: "vitosettings".into() });
[INFO] [stdout]     | |________________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `lwidget` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `compositor`, `layer_shell`, and `qh` are never read
[INFO] [stdout]    --> src/settings/main.rs:96:5
[INFO] [stdout]     |
[INFO] [stdout]  93 | struct SettingsApp {
[INFO] [stdout]     |        ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout]  96 |     compositor:      CompositorState,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]  97 |     layer_shell:     LayerShell,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     qh:              QueueHandle<Self>,
[INFO] [stdout]     |     ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear_rgba`, `draw_icon`, and `truncate_text` are never used
[INFO] [stdout]    --> src/settings/../render.rs:70:12
[INFO] [stdout]     |
[INFO] [stdout]  55 | impl Renderer {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn clear_rgba(&mut self, hex: &str, alpha: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn draw_icon(&mut self, x: u32, y: u32, phys_size: u32, rgba: &[u8]) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub fn truncate_text(&self, text: &str, max_width: f32, size: f32) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `font_path` is never read
[INFO] [stdout]   --> src/settings/../config.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct Config {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub font_path:      Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Config` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `CACHE` is never used
[INFO] [stdout]  --> src/settings/../icons.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | static CACHE: OnceLock<Mutex<HashMap<String, Option<Vec<u8>>>>> = OnceLock::new();
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cache` is never used
[INFO] [stdout]   --> src/settings/../icons.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn cache() -> &'static Mutex<HashMap<String, Option<Vec<u8>>>> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load` is never used
[INFO] [stdout]   --> src/settings/../icons.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn load(app_id: &str, size: u32) -> Option<Vec<u8>> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `data_dirs` is never used
[INFO] [stdout]   --> src/settings/../icons.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn data_dirs() -> Vec<PathBuf> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `desktop_icon_name` is never used
[INFO] [stdout]   --> src/settings/../icons.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn desktop_icon_name(app_id: &str) -> Option<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_png_path` is never used
[INFO] [stdout]   --> src/settings/../icons.rs:77:4
[INFO] [stdout]    |
[INFO] [stdout] 77 | fn find_png_path(icon_name: &str) -> Option<PathBuf> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lookup` is never used
[INFO] [stdout]    --> src/settings/../icons.rs:116:4
[INFO] [stdout]     |
[INFO] [stdout] 116 | fn lookup(app_id: &str, size: u32) -> Option<Vec<u8>> {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode_and_scale` is never used
[INFO] [stdout]    --> src/settings/../icons.rs:122:4
[INFO] [stdout]     |
[INFO] [stdout] 122 | fn decode_and_scale(path: &std::path::Path, target: u32) -> Option<Vec<u8>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tray_idx` is never read
[INFO] [stdout]   --> src/main.rs:66:24
[INFO] [stdout]    |
[INFO] [stdout] 66 |     TrayMenuItem     { tray_idx: usize, menu_id: i32 },
[INFO] [stdout]    |     ------------       ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BarAction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TrayShowMenu` is never constructed
[INFO] [stdout]   --> src/main.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | enum BarAction {
[INFO] [stdout]    |      --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 65 |     TrayShowMenu    { tray_idx: usize },
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BarAction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `POPUP_HEIGHT` is never used
[INFO] [stdout]    --> src/main.rs:178:7
[INFO] [stdout]     |
[INFO] [stdout] 178 | const POPUP_HEIGHT:   u32 = POPUP_ITEM_H * POPUP_ITEMS;
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `top_tray_hits` is never read
[INFO] [stdout]    --> src/main.rs:222:5
[INFO] [stdout]     |
[INFO] [stdout] 207 | struct PerOutput {
[INFO] [stdout]     |        --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 222 |     top_tray_hits:   Vec<(usize, HitRegion)>,  // (tray_idx, region) for right-click
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `font_path` and `selected_theme` are never read
[INFO] [stdout]   --> src/config.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct Config {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub font_path:      Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 44 |     pub selected_theme: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Config` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stylix_colors` is never used
[INFO] [stdout]    --> src/config.rs:222:8
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub fn stylix_colors() -> Option<Colors> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_setting` is never used
[INFO] [stdout]    --> src/config.rs:391:8
[INFO] [stdout]     |
[INFO] [stdout] 391 | pub fn save_setting(key: &str, value: toml::Value) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_atomic` is never used
[INFO] [stdout]    --> src/config.rs:417:4
[INFO] [stdout]     |
[INFO] [stdout] 417 | fn write_atomic(path: &std::path::Path, contents: &str) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_setting` is never used
[INFO] [stdout]    --> src/config.rs:428:8
[INFO] [stdout]     |
[INFO] [stdout] 428 | pub fn remove_setting(key: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `measure` is never used
[INFO] [stdout]   --> src/render.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn measure(text: &str, size: f32) -> f32 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]   --> src/render.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl Renderer {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn clear(&mut self, hex: &str) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `title` is never read
[INFO] [stdout]   --> src/modules/tray.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct TrayItem {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 14 |     pub id:         String,
[INFO] [stdout] 15 |     pub title:      String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TrayItem` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `enabled` is never read
[INFO] [stdout]   --> src/modules/tray.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct MenuItem {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub enabled: bool,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MenuItem` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ti`
[INFO] [stdout]    --> src/main.rs:569:10
[INFO] [stdout]     |
[INFO] [stdout] 569 |     for (ti, tray_item) in tray_items.iter().enumerate() {
[INFO] [stdout]     |          ^^ help: if this is intentional, prefix it with an underscore: `_ti`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `wx` is never read
[INFO] [stdout]    --> src/main.rs:439:21
[INFO] [stdout]     |
[INFO] [stdout] 439 |                       wx -= wgap;
[INFO] [stdout]     |                       ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 506 | /             lwidget!("", &txt, &config.colors.base0c,
[INFO] [stdout] 507 | |                 BarAction::Spawn { cmd: "vitosettings".into() });
[INFO] [stdout]     | |________________________________________________________________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `lwidget` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tray_idx` is never read
[INFO] [stdout]   --> src/main.rs:66:24
[INFO] [stdout]    |
[INFO] [stdout] 66 |     TrayMenuItem     { tray_idx: usize, menu_id: i32 },
[INFO] [stdout]    |     ------------       ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BarAction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TrayShowMenu` is never constructed
[INFO] [stdout]   --> src/main.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | enum BarAction {
[INFO] [stdout]    |      --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 65 |     TrayShowMenu    { tray_idx: usize },
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BarAction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `POPUP_HEIGHT` is never used
[INFO] [stdout]    --> src/main.rs:178:7
[INFO] [stdout]     |
[INFO] [stdout] 178 | const POPUP_HEIGHT:   u32 = POPUP_ITEM_H * POPUP_ITEMS;
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `top_tray_hits` is never read
[INFO] [stdout]    --> src/main.rs:222:5
[INFO] [stdout]     |
[INFO] [stdout] 207 | struct PerOutput {
[INFO] [stdout]     |        --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 222 |     top_tray_hits:   Vec<(usize, HitRegion)>,  // (tray_idx, region) for right-click
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `base06` and `base0f` are never read
[INFO] [stdout]   --> src/config.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct Colors {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub base06: String, // light fg
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub base0f: String, // brown
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Colors` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `swatches` is never used
[INFO] [stdout]   --> src/config.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl Colors {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 26 |     /// The 16 base colors in order, as hex strings (for palette previews).
[INFO] [stdout] 27 |     pub fn swatches(&self) -> Vec<String> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `font_path` and `selected_theme` are never read
[INFO] [stdout]   --> src/config.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct Config {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub font_path:      Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 44 |     pub selected_theme: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Config` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stylix_colors` is never used
[INFO] [stdout]    --> src/config.rs:222:8
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub fn stylix_colors() -> Option<Colors> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_setting` is never used
[INFO] [stdout]    --> src/config.rs:391:8
[INFO] [stdout]     |
[INFO] [stdout] 391 | pub fn save_setting(key: &str, value: toml::Value) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_atomic` is never used
[INFO] [stdout]    --> src/config.rs:417:4
[INFO] [stdout]     |
[INFO] [stdout] 417 | fn write_atomic(path: &std::path::Path, contents: &str) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_setting` is never used
[INFO] [stdout]    --> src/config.rs:428:8
[INFO] [stdout]     |
[INFO] [stdout] 428 | pub fn remove_setting(key: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `measure` is never used
[INFO] [stdout]   --> src/render.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn measure(text: &str, size: f32) -> f32 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]   --> src/render.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl Renderer {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn clear(&mut self, hex: &str) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `title` is never read
[INFO] [stdout]   --> src/modules/tray.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct TrayItem {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 14 |     pub id:         String,
[INFO] [stdout] 15 |     pub title:      String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TrayItem` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `enabled` is never read
[INFO] [stdout]   --> src/modules/tray.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct MenuItem {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub enabled: bool,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MenuItem` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 02s
[INFO] running `Command { std: "docker" "inspect" "ac139d95e886c6363e18cefe0117442c54767ca4396e87d4d706f6a2f28c2832", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ac139d95e886c6363e18cefe0117442c54767ca4396e87d4d706f6a2f28c2832", kill_on_drop: false }`
[INFO] [stdout] ac139d95e886c6363e18cefe0117442c54767ca4396e87d4d706f6a2f28c2832
